import request from '@/config/axios'

// 短视频 VO
export interface VLogInfoVO {
  id: number | string // 唯一编号
  shopId: number // 店铺编号
  shop: {
    id: number // 店铺编号
    type: number // 店铺类型
    logo: string // 店铺徽标
    name: string // 店铺名称
    status: number // 经营状态
  }
  userId: number // 作者编号
  user: {
    id: number // 作者编号
    avatar: string // 作者头像
    nickname: string // 作者昵称
  }
  playUrl: string // 播放地址
  coverUrl: string // 封面地址
  title: string // 视频标题
  privacy: boolean // 是否私密
  seconds: number // 视频秒数
  width: number // 视频宽度
  height: number // 视频高度
  commentCount: number // 评论数
  status: number // 状态：禁止播放、发布成功
}

// 短视频状态 VO
export interface VLogStatusVO {
  id: number | string // 唯一编号
  status: number // 状态：禁止播放、发布成功
}

// 短视频 API
export const VLogInfoApi = {
  // 查询短视频分页
  getVLogInfoPage: async (params: any) => {
    return await request.get({ url: `/vlog/info/page`, params })
  },

  // 查询短视频
  getVLogInfo: async (id: number | string) => {
    return await request.get({ url: `/vlog/info/get?id=` + id })
  },

  // 修改短视频状态
  updateVLogStatus: async (data: VLogStatusVO) => {
    return await request.put({ url: `/vlog/info/update-status`, data })
  },

  // 删除短视频
  deleteVLogInfo: async (id: number | string) => {
    return await request.delete({ url: `/vlog/info/delete?id=` + id })
  },

  // 导出短视频 Excel
  exportVLogInfo: async (params) => {
    return await request.download({ url: `/vlog/info/export-excel`, params })
  },

  // ==================== 子表（视频点赞） ====================

  // 查询视频点赞用户列表
  getVLogLikedUserList: async (vlogId: any) => {
    return await request.get({ url: `/vlog/liked/list-user?vlogId=` + vlogId })
  },

  // 查询视频点赞用户列表
  getVLogFavoriteUserList: async (vlogId: any) => {
    return await request.get({ url: `/vlog/favorite/list-user?vlogId=` + vlogId })
  }
}
